<?php

class Weixin extends WoniuController implements WeChatHandle {

    private $token = "xxxxx";

    public function doIndex() {
        $chat = new Wechat($this->token, $this);
        $chat->run();
    }

    /**
     * 用户关注时触发，回复「欢迎关注」
     *
     * @return void
     */
    public function onSubscribe(Wechat $chat) {
        $chat->responseText('欢迎关注');
    }

    /**
     * 用户已关注时,扫描带参数二维码时触发，回复二维码的EventKey (测试帐号似乎不能触发)
     *
     * @return void
     */
    public function onScan(Wechat $chat) {
        $chat->responseText('二维码的EventKey：' . $chat->getRequest('EventKey'));
    }

    /**
     * 用户取消关注时触发
     *
     * @return void
     */
    public function onUnsubscribe(Wechat $chat) {
        // 「悄悄的我走了，正如我悄悄的来；我挥一挥衣袖，不带走一片云彩。」
    }

    /**
     * 上报地理位置时触发,回复收到的地理位置
     *
     * @return void
     */
    public function onEventLocation(Wechat $chat) {
        $chat->responseText('收到了位置推送：' . $chat->getRequest('Latitude') . ',' . $chat->getRequest('Longitude'));
    }

    /**
     * 收到文本消息时触发，回复收到的文本消息内容
     *
     * @return void
     */
    public function onText(Wechat $chat) {
        $link = '<a href="http://wenda60.com/?member.sinaLink">绑定微博</a>';
        $chat->responseText($link);
    }

    /**
     * 收到图片消息时触发，回复由收到的图片组成的图文消息
     *
     * @return void
     */
    public function onImage(Wechat $chat) {
        $jump_link = 'http://wenda60.com/?member.qqLink';
        $items = array(
            new NewsResponseItem('标题一描述一描述一描述一', '描述一描述一描述一', $chat->getRequest('picurl'), $jump_link),
//            new NewsResponseItem('标题二', '描述二', $chat->getRequest('picurl'), $chat->getRequest('picurl')),
//            new NewsResponseItem('标题二', '描述二', $chat->getRequest('picurl'), $chat->getRequest('picurl')),
//            new NewsResponseItem('标题二', '描述二', $chat->getRequest('picurl'), $chat->getRequest('picurl')),
        );

        $chat->responseNews($items);
    }

    /**
     * 收到地理位置消息时触发，回复收到的地理位置
     *
     * @return void
     */
    public function onLocation(Wechat $chat) {
        $img_link = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTiSq2NSlvZabDz6dovn1RkyIjJwd0yhjZUAj-OPfTR1dlXet53';
        $pos = $chat->getRequest('location_x') . ',' . $chat->getRequest('location_y');
        $link = "https://www.google.com/maps/search/$pos/@$pos,15z";
        $items[] = new NewsResponseItem('我的位置', '点击查看', $img_link, $link);
        $chat->responseNews($items);
    }

    /**
     * 收到链接消息时触发，回复收到的链接地址
     *
     * @return void
     */
    public function onLink(Wechat $chat) {
        $chat->responseText('收到了链接：' . $chat->getRequest('url'));
    }

    /**
     * 收到语音消息时触发，回复语音识别结果(需要开通语音识别功能)
     *
     * @return void
     */
    public function onVoice(Wechat $chat) {
        $chat->responseText('收到了语音消息,识别结果为：' . $chat->getRequest('Recognition'));
    }

    /**
     * 收到自定义菜单消息时触发，回复菜单的EventKey
     *
     * @return void
     */
    public function onClick(Wechat $chat) {
        $chat->responseText('你点击了菜单：' . $chat->getRequest('EventKey'));
    }

    /**
     * 收到未知类型消息时触发，回复收到的消息类型
     *
     * @return void
     */
    public function onUnknown(Wechat $chat) {
        $chat->responseText('收到了未知类型消息：' . $chat->getRequest('msgtype'));
    }

}
